МІНІСТЕРСТВО ОСВІТИ І НАУКИ МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторних робіт №1
з курсу «Методи і засоби стеганографії»
на тему: «Основні алгоритми стеганографії»
МЕТА РОБОТИ
Ознайомитися з основними алгоритмами стеганографії.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Формат bmp-файлу
Формат bmp (від англ. BitMaP – бітова карта або бітовий масив) представляє нестиснуте (в основному) зображення. Цей файл складається з чотирьох частин: заголовку, інформаційного заголовку, таблиці кольорів (палітри) і даних зображення. Якщо у файлі зберігається зображення з глибиною кольору 24 біта (truecolor), то таблиця кольорів може бути відсутня.
Приховування даних в просторовій області
Цифрова стеганографія включає в себе наступні напрямки:
вбудовування інформації з метою її прихованої передачі;
вбудовування цифрових водяних знаків (ЦВЗ) (watermarking);
вбудовування ідентифікаційних номерів (fingerprinting);
вбудовування заголовків (captioning).
Алгоритми, що описуються в даному пункті, впроваджують ЦВЗ в області вихідного зображення. Їх перевагою є те, що для введенняЦВЗ немає необхідності виконувати обчислювально громіздкі лінійніперетворення зображень. ЦВЗ вводяться за рахунок маніпуляцій яскравістю l(x,y) або колірними складовими (r(x,y),b(x,y),g(x,y)).
Алгоритм LSB
LSB (Least Significant Bit, найменший значущий біт) - суть цього методу полягає в заміні останніх значущих бітів в контейнері на біти приховуваного повідомлення. Різниця між порожнім і заповненим контейнерами повинна бути не відчутна для органів сприйняття людини.Суть методу полягає в наступному: Припустимо, є 8-бітове зображення в градаціях сірого. 00h (00000000b) позначає чорний колір, FFh (11111111b) - білий. Усього є 256 градацій. Також припустимо, що повідомлення складається з 1 байта - наприклад, 01101011b. При використанні 2 молодших біт в описах пікселів, нам буде потрібно 4 пікселя. Припустимо, вони чорного кольору. Тоді пікселі, що містять приховане повідомлення, будуть виглядати наступним чином: 00000001 00000010 00000010 00000011. Тоді колір пікселів зміниться: першого - на 1 / 255, другого і третього - на 2 / 255 і четвертого - на 3 / 255. Такі градації, мало того що непомітні для людини, можуть взагалі не відобразитися при використанні низькоякісних пристроїв виводу.
Розглянемо ще один приклад. Кожен колір (піксель) кодується одним байтом (8 біт). У нас таких кольору три (червоний, синій, зелений) разом 3 байти (24 біта). Щоб записати нашу інформацію і при цьому не спотворити зображення, запишемо дані в молодші біти кольорів зображення. Тобто ми візьмемо піксел, розберемо його на складові кольору і замінимо молодші біти бітами нашого повідомлення.
Це 1 байт нашого повідомлення:10101010
Це RGB нашого пікселя:R: 11110000G: 00001000B: 11001000
Замінимо молодші біти і отримаємо новий піксель:R: 11110010G: 00001101B: 11001010
Дана операція не внесе до зображення помітних людському оку спотворень.
Методи LSB є нестійкими до всіх видів атак і можуть бути використані тільки при відсутності шуму в каналі передачі даних. Виявлення LSB-кодованого стего здійснюється з аномальних характеристикам розподілу значень діапазону молодших бітів відліків цифрового сигналу.
Розрахунок кількості можливих сиволів з розрахунку 1 біта в байті
N= Ширина(пікселі)* Довжина(пікселі)*3(R,G,B)/8
Розрахунок кількості можливих сиволів з розрахунку 2 біта в байті
N= Ширина(пікселі)* Довжина(пікселі)*6(R,G,B)/8
Розрахунок кількості можливих сиволів з розрахунку 3 біта в байті
N= Ширина(пікселі)* Довжина(пікселі)*9(R,G,B)/8
Розрахунок кількості можливих сиволів з розрахунку 4 біта в байті
N= Ширина(пікселі)* Довжина(пікселі)*12(R,G,B)/8
Блок схема
Код Програми
import Image
# Функція, яка реалізує меню програми і запускає інші потрібні для виконання роботи програми функції
def main():
print "Hi, user"
while True:
print "What do you want to do?"
vidpovid=raw_input("""1 - cript
2 - decript...